--- ./gtk/gtkaccellabel.c.orig	2014-05-07 23:40:39.000000000 +0000
+++ ./gtk/gtkaccellabel.c	2014-07-20 15:16:49.000000000 +0000
@@ -108,6 +108,8 @@
 
   guint           accel_key;         /* manual accel key specification if != 0 */
   GdkModifierType accel_mods;
+
+  gchar         *accel_text;         /* already-translated accel_string */
 };
 
 static void         gtk_accel_label_set_property (GObject            *object,
@@ -260,6 +262,7 @@
   priv->accel_closure = NULL;
   priv->accel_group = NULL;
   priv->accel_string = NULL;
+  priv->accel_text = NULL;
 }
 
 /**
@@ -301,6 +304,7 @@
   GtkAccelLabel *accel_label = GTK_ACCEL_LABEL (object);
 
   g_free (accel_label->priv->accel_string);
+  g_free (accel_label->priv->accel_text);
 
   G_OBJECT_CLASS (gtk_accel_label_parent_class)->finalize (object);
 }
@@ -903,6 +907,12 @@
       accel_label->priv->accel_string = NULL;
     }
 
+  if (accel_label->priv->accel_text)
+    {
+      accel_label->priv->accel_string = g_strdup (accel_label->priv->accel_text);
+      return FALSE;
+    }
+
   g_object_get (gtk_widget_get_settings (GTK_WIDGET (accel_label)),
                 "gtk-enable-accels", &enable_accels,
                 NULL);
@@ -1011,3 +1021,13 @@
   *accelerator_key = accel_label->priv->accel_key;
   *accelerator_mods = accel_label->priv->accel_mods;
 }
+
+void
+_gtk_accel_label_set_accel_text (GtkAccelLabel *accel_label,
+                                 const gchar   *accel_text)
+{
+  g_free (accel_label->priv->accel_text);
+  accel_label->priv->accel_text = g_strdup (accel_text);
+
+  gtk_accel_label_reset (accel_label);
+}
